package com.newtouch.bxzs.database.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.newtouch.bxzs.database.model.bo.SystemParameterBO;
import com.newtouch.bxzs.database.model.vo.SystemParameterAddVO;
import com.newtouch.bxzs.database.model.vo.SystemParameterChangeVO;
import com.newtouch.bxzs.database.model.vo.SystemParameterVO;
import com.newtouch.bxzs.database.model.vo.SystemParameterValueVO;

import java.util.List;

/**
 * 系统参数管理的service接口
 *
 * <p>
 * <b>History:</b>
 * <table border="1">
 * <tr>
 * <th>Date</th>
 * <th>Operator</th>
 * <th>Memo</th>
 * </tr>
 * <tr>
 * <td>2021/1/5/td>
 * <td>zhangqianyang</td>
 * <td>Create</td>
 * </tr>
 * </table>
 *
 * @author zhangqianyang
 * @version 1.0.0
 * @since 1.0.0
 */
public interface SystemParameterService {
	/**
	 * 查询系统参数
	 *
	 * @param systemParameterVO
	 *            系统参数VO类
	 * @return 系统参数列表
	 */
	IPage<SystemParameterBO> getSystemParameterList(SystemParameterVO systemParameterVO);

	/**
	 * 获取所有系统参数
	 * 
	 * @return 获取所有系统参数
	 */
	List<SystemParameterBO> getAllSystemParameter();

	/**
	 * 改变状态
	 *
	 * @param systemParameterChangeVO
	 *            系统参数值修改VO类
	 * @return 系统参数编码
	 */
	String changeSystemParameterStatus(SystemParameterChangeVO systemParameterChangeVO);

	/**
	 * 新增系统参数
	 *
	 * @param systemParameterAddVO
	 *            系统参数新增VO类
	 * @return 成功/失败
	 */
	String addSystemParameter(SystemParameterAddVO systemParameterAddVO);

	/**
	 * 修改系统参数值
	 *
	 * @param systemParameterValueVO
	 *            系统参数值修改VO类
	 * @return 系统参数编码
	 */
	String changeSystemParameterValue(SystemParameterValueVO systemParameterValueVO);

	/**
	 * 获取系统参数详情
	 *
	 * @param parameterId
	 *            系统参数id
	 * @return 系统参数详情
	 */
	SystemParameterBO getSystemParameterDetail(String parameterId);
}
